//
//  SequencerProtocol.h
//  CocoaSynth
//
//  Created by Jérémy Brault on 06/02/10.
//  Copyright 2010 None. All rights reserved.
//

#import <Cocoa/Cocoa.h>

#import "Module.h"

/*!
    @protocol	SequencerProtocol
    @abstract	SequencerProtocol groups methods to manage an electroning module-based system. Thus, you can add/remove modules to/from the system 
				and of course you can start and stop it.
*/
@protocol SequencerProtocol

/*!
    @method		start
    @abstract	Start the sequencer.
*/
- (void)start;

/*!
	@method		stop
	@abstract	Stop the sequencer.
 */
- (void)stop;

/*!
    @method     isStarted
    @abstract   Method to know if sequencer is running or not
    @result     YES if it's running NO else.
*/
- (BOOL)isStarted;

/*!
    @method     addModule
    @abstract   Add a module to the system.
    @param      module	The new module of the system.
*/
- (void)addModule:(Module*)module;

/*!
    @method     removeModule
    @abstract   Remove a module from the system.
    @param      module	The former module of the system.
*/
- (void)removeModule:(Module*)module;

@end
